$(function(){
	//选择找回密码的方式
	/*$(".find-way").click(function(){
		$(this).addClass("selected").siblings().removeClass("selected");
	});
	
	//找回密码，下一步
	$(".find-password-next").click(function(){
		var num=$(".selected").attr("index");
		$(".find-password").hide();
		
		//如果num等于0，则显示通过邮箱找回密码界面，否则显示通过手机找回密码界面。
		if(num==="0"){
			$(".find-by-email").show();
		}else{
			$(".find-by-phone").show();
		}
	});
	*/
	//正则表达式
	var re={
		phone:/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/,
		email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
		passwords:/^[A-Za-z0-9]{6,18}$/
	};
	
	//从cookie中获取临时用户名
	//var tmsi=$.cookie("tmsi");
	
	//通过邮箱找回密码，下一步
	$(".find-by-email-next").click(function(){
		var email=$("#email").val().trim();
		
		//验证用户是否输入邮箱，邮箱是否合法
		if(email=="" || email==null){
			showTips("请输入您的注册邮箱。");
			return false;
		}else{
			if(!re.email.test(email)){
				showTips("请输入合法邮箱地址。");
				return false;
			}
		};
		
		//验证邮箱是否正确
		ajax({
			type:"post",
			url:"",
			data:{"userName":tmsi,"email":email},
			dataType:"json",
			success:function(data){
				//如果邮箱正确，返回1，否则返回0
				if(data===1){
					$(".find-by-email").hide();
					$(".reset-password").show();
				}else if(data===0){
					showTips("这不是您的注册邮箱。");
					return false;
				}
			}
		});
	});
	
	//找回密码下一步
	$("#passwordCod").click(function(){
		var phone = "";
		var code = "";
		var securityCode = "";
		phone = $("#phone").val();
		code = $("#code").val();
		securityCode = $("#securityCode").val();
		
		countdown=getCookieValue("secondsremained");
		if (countdown > 0) {
			showTips("发送验证短信间隔少于1分钟");
    		return false;
		}
		
		if(securityCode == '' || securityCode == null){
			showTips("图形验证码不能为空");
			return false;
		}
		
		if(securityCode.toLowerCase()!=securityCode.toLowerCase()){
			showTips("图形验证码错误");
			return false;
		}
		
		var regMobile = /^1[3|4|5|6|7|8|9][0-9]{1}[0-9]{8}$/;
		if(phone == '' || phone == null || phone == '手机') {
			showTips("手机号码不能为空");
			return false;
		}
		
		if(!regMobile.test(phone)) {
			showTips("手机格式错误");
			return false;
		}
		
		$.ajax({
			type: "post",
			url: "/user/sendCaptchaByPasswrod",
			data : {"phone":phone,"securityCode":securityCode,"code":code},
			dataType: "json",
			success: function(data) {
				if(data.status == true){
					showTips("验证码已发送到手机!");
					curCount = count;
					//设置button效果，开始计时
					$("#passwordCod").attr("disabled", "disabled");
					$("#code").val(data.captchaCode);
					$("#phoneCode").val(data.captchaCode);
					//InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器，1秒执行一次
					addCookie("secondsremained",60,60);//添加cookie记录,有效时间60s
					SetRemainTime();
				} else  {
					showTips(data.data);
				}
			}
		});
	})
	
	
	//通过手机找回密码，下一步
	$(".find-by-phone-next").click(function(){
		var phone=$("#phone").val().trim(),
		code = $("#code").val(),
		phoneCode = $("#phoneCode").val(),
		securityCode = $("#securityCode").val();
		
		//验证用户是否输入手机号，手机号是否合法
		if(phone=="" || phone==null){
			showTips("请输入您的手机号。");
			return false;
		}
		
		var regMobile = /^1[3|4|5|6|7|8|9][0-9]{1}[0-9]{8}$/;
		if(phone == '' || phone == null || phone == '手机') {
			showTips("手机号码不能为空");
			return false;
		}
		
		if(!regMobile.test(phone)) {
			showTips("手机格式错误");
			return false;
		}
		
		if(code == '' || code == null){
			showTips("短信验证码不能为空");
			return false;
		}
		
		if(code != phoneCode){
			showTips("短信验证码错误");
			return false;
		}
		
		if(securityCode == '' || securityCode == null){
			showTips("图形验证码不能为空");
			return false;
		}
		
		if(securityCode.toLowerCase()!=securityCode.toLowerCase()){
			showTips("图形验证码错误");
			return false;
		}
		
		$.ajax({
			type:"post",
			url:"/user/findPassword",
			data:{"code":code,"phone":phone},
			success:function(data){
				if(data.status == false){
					showTips("这不是您的注册手机号。");
					return false;
				}
				$("#phone").val(data.data);
				window.location.href="/user/updatePassword";
			}
		});
	});
	
	$("#Verify").click(function(){
		$(this).attr("src","/securityCodeImage/init?timestamp="+new Date().getTime());
	});
	
	//重置密码
	$("#reset-password-btn").click(function(){
		var passwords=$("#passwords").val().trim(),
		    rePasswords=$("#re-passwords").val().trim();
		
		var phone = $("#phone").val();
		
		//验证用户是否输入新密码
		if(passwords=="" || passwords==null){
			showTips("请输入您的新密码");
			return false;
		}else{
			if(!re.passwords.test(passwords)){
				showTips("请填写6~18个字符密码，字母、数字或字母数字组合");
				return false;
			}
		};
		
		if(rePasswords=="" || rePasswords==null){
			showTips("请填写再次输入您的密码选项");
			return false;	
		}else if(rePasswords !== passwords){
			showTips("密码有误");
			return false;
		};
		
		//发送用户的新密码到数据库
		$.ajax({
			type:"post",
			url:"/user/updatePassword",
			data:{"phone":phone,"confirmPassword":rePasswords},
			dataType:"json",
			success:function(data){
				if(data.status == true) {
					showTips("密码修改成功");
					window.location.href="/login";
				} else {
					showTips("密码修改失败，请重新输入用户名，再试一次");
					window.location.href="/user/findPassword";
				}
			},
			error:function(data){
				showTips("密码修改失败，请重新输入用户名，再试一次");
			}
		});
		
	});
	
	/*信息提示框*/
	function showTips(str){
		var doc=document;
		
		//如果提示框已被创建，则只改变文本内容，否则创建提示框
		if(doc.querySelector(".tips")!==null){
			doc.querySelector(".tips span").innerHTML=str;
			doc.querySelector(".tips").style.display="block";
		}else{
			var body=doc.querySelector("body"),
				tips=doc.createElement("div"),
				span=doc.createElement("span");
			
			//设置提示框样式，并将节点插入到body中
			tips.style.cssText="position:fixed; top:0;z-index:9999; width:100%; height:100%; background-color:rgba(0,0,0,.5);color:red;";
			span.style.cssText="max-width:60%;padding:30px 50px;border-radius:2px;background-color:#fff;position:relative;top:50%;transform:translateY(-50%);margin-left:auto;margin-right:auto;box-shadow:0 0 20px #000; display:inline-block; text-align:left;";
			span.innerHTML=str;
			tips.appendChild(span);
			tips.className="tips text-center";
			body.appendChild(tips);
			
			//点击时隐藏提示框
			tips.onclick=function(){
				this.style.display="none";
		    };
		};
		
	};
	
	//过滤敏感字符函数  ，如果包含敏感字符则flag为true。
	function filterSqlStr(value){  
	    var str="delete,javascript,exec,insert,select,union,update,count,*,',join,>,<";  
	    var strArr=str.split(','); 
	    var len=strArr.length;
	    var flag=false;  
	      
	    for(var i=0;i<len;i++){   
	        if(value.toLowerCase().indexOf(strArr[i])!=-1){  
	            flag=true;  
	            break;       
	        }  
	    }  
	    return flag;  
	};
	
})

//发送验证码时添加cookie
function addCookie(name,value,expiresHours){ 
    var cookieString=name+"="+escape(value); 
    //判断是否设置过期时间,0代表关闭浏览器时失效
    if(expiresHours>0){ 
        var date=new Date(); 
        date.setTime(date.getTime()+expiresHours*1000); 
        cookieString=cookieString+";expires=" + date.toUTCString(); 
    } 
        document.cookie=cookieString; 
} 

var InterValObj; //timer变量，控制时间
var count = 60; //间隔函数，1秒执行
var curCount;//当前剩余秒数
var countdown;

function SetRemainTime(phone) {
	countdown=getCookieValue("secondsremained");
	if (countdown == 0) {
		$("#passwordCod").removeAttr("disabled");//启用按钮
		$("#passwordCod").html("重新发送验证码");
		$("#passwordCod").css("background-color", "#ec584e");
	}else {
		countdown--;
		$("#passwordCod").html(countdown+"秒后再发送");
		$("#passwordCod").attr("disabled", "disabled");
		$("#passwordCod").css("background-color", "#666");
		editCookie("secondsremained",countdown,countdown+1);
		setTimeout(function() { SetRemainTime() },1000) //每1000毫秒执行一次
	}
}

//修改cookie的值
function editCookie(name,value,expiresHours){ 
    var cookieString=name+"="+escape(value); 
    if(expiresHours>0){ 
      var date=new Date(); 
      date.setTime(date.getTime()+expiresHours*1000); //单位是毫秒
      cookieString=cookieString+";expires=" + date.toGMTString(); 
    } 
      document.cookie=cookieString; 
} 
//根据名字获取cookie的值
function getCookieValue(name){ 
      var strCookie=document.cookie; 
      var arrCookie=strCookie.split(";"); 
      for(var i=0;i<arrCookie.length;i++){ 
        var arr=arrCookie[i].split("="); 
        if(Trim(arr[0])==name){
          return unescape(arr[1]);
          break;
        }
      } 
      return ""; 
       
}

function Trim(str){ 
    return str.replace(/(^\s*)|(\s*$)/g, ""); 
}
